// Created by amoylel on 18/12/2018.
// Copyright (c) 2018 amoylel All rights reserved.

#ifndef AMO_ANY_JSON_809AE42B_3FBB_4BF2_B41C_F40F215D4BBA_HPP__
#define AMO_ANY_JSON_809AE42B_3FBB_4BF2_B41C_F40F215D4BBA_HPP__

#include <string>
#include <amo/json.hpp>
#include <amo/any/any_type_traits.hpp>

namespace amo {
    template<> struct any_value_type <amo::u8json> {
        static const char value = 41;
    };
    template<> struct any_value_type <amo::json> {
        static const char value = 41;
    };
    
    
    template<>  amo::u8json string_to_any(const std::string& val) {
        return amo::u8json(val);
    }
    template<>  amo::json string_to_any(const std::string& val) {
        return amo::json(val);
    }
    
    template<> std::string any_to_string<amo::json_value> (const amo::json_value&
            val) {
        return val.to_string();
    }
    template<>  std::string any_to_string<amo::json>(const amo::json& val) {
        return val.to_string();
    }
    template<>  std::string any_to_string<amo::u8json>(const amo::u8json& val) {
        return val.to_string();
    }
}



#endif //AMO_ANY_JSON_809AE42B_3FBB_4BF2_B41C_F40F215D4BBA_HPP__